package com.kehutong.charge.entity;

import com.kehutong.charge.util.enums.ChargeBillStatusEnum;
import com.kehutong.charge.util.enums.DateUnitEnum;
import com.kehutong.charge.util.enums.PriceUnitEnum;
import com.kehutong.charge.util.enums.ResidentsTypeEnum;
import com.kehutong.common.entity.DataEntity;
import org.coraframework.json.annotation.JSONField;
import org.coraframework.orm.Entity;
import org.coraframework.orm.annotation.Column;
import org.coraframework.orm.annotation.Table;
import org.coraframework.orm.util.IDType;

import java.math.BigDecimal;

/**
 * @author joneRon
 * @Title: kht
 * @Description: 违约金订单
 * @date 2021/7/27
 */
@Table(value="t_charge_penalty_order", comment="违约金订单",multi = true, idType = IDType.TIMESTAMP, engine = "innodb")
public class ChargePenaltyOrder extends Entity {

    protected ChargePenaltyOrder(String id) {
        super(id);
    }

    @Column(comment = "违约金编号")
    private String penaltyNo;

    @Column(comment = "违约金订单号")
    private String penaltyOrderNo;

    @Column(comment="账单编号")
    private String houseBillNo;

    @Column(comment="账单项编号")
    private String itemBillNo;

    @Column(comment="居住类型")
    private ResidentsTypeEnum residentsType;

    @Column(comment = "业主编号")
    private String ownerNo;

    @Column(comment="违约用户名")
    private String userName;

    @Column(comment="小区编号")
    private String communityNo;

    @Column(comment="小区名称")
    private String communityName;

    @Column(comment="房屋编号")
    private String houseNo;

    @Column(comment="账单地址")
    private String chargeAddress;

    @Column(comment="账单状态")
    private ChargeBillStatusEnum billStatus;

    @Column(comment="违约金额--账单金额")
    private BigDecimal penaltyAmount;

    @Column(comment="应付金额")
    private BigDecimal payableAmount;

    @Column(comment="实付金额")
    private BigDecimal paymentAmount;

    @Column(comment="议价金额")
    private BigDecimal negotiateAmount;

    @Column(comment="违约金比例")
    private Integer lateFeeNum;

    @Column(comment="违约金比例单位")
    private PriceUnitEnum penaltyScale;

    @Column(comment="违约金计算单位")
    private DateUnitEnum penaltyUnit;

    @Column(comment="账单年月")
    private String billYearMonth;

    @Column(comment="违约时间")
    private String penaltyDate;

    @JSONField(serialize = false)
    @Column(comment = "逻辑删除")
    private boolean deleted;

    @Column(comment = "创建人")
    private String createName;

    @Column(comment = "修改人")
    private String updateName;

    public String getBillYearMonth() {
        return billYearMonth;
    }

    public void setBillYearMonth(String billYearMonth) {
        this.billYearMonth = billYearMonth;
    }

    public ChargeBillStatusEnum getBillStatus() {
        return billStatus;
    }

    public String getPenaltyNo() {
        return penaltyNo;
    }

    public void setPenaltyNo(String penaltyNo) {
        this.penaltyNo = penaltyNo;
    }

    public void setBillStatus(ChargeBillStatusEnum billStatus) {
        this.billStatus = billStatus;
    }

    public String getCommunityName() {
        return communityName;
    }

    public void setCommunityName(String communityName) {
        this.communityName = communityName;
    }

    public String getPenaltyDate() {
        return penaltyDate;
    }

    public void setPenaltyDate(String penaltyDate) {
        this.penaltyDate = penaltyDate;
    }

    public BigDecimal getPayableAmount() {
        return payableAmount;
    }

    public void setPayableAmount(BigDecimal payableAmount) {
        this.payableAmount = payableAmount;
    }

    public BigDecimal getPaymentAmount() {
        return paymentAmount;
    }

    public void setPaymentAmount(BigDecimal paymentAmount) {
        this.paymentAmount = paymentAmount;
    }

    public BigDecimal getNegotiateAmount() {
        return negotiateAmount;
    }

    public void setNegotiateAmount(BigDecimal negotiateAmount) {
        this.negotiateAmount = negotiateAmount;
    }

    public ResidentsTypeEnum getResidentsType() {
        return residentsType;
    }

    public void setResidentsType(ResidentsTypeEnum residentsType) {
        this.residentsType = residentsType;
    }

    public Integer getLateFeeNum() {
        return lateFeeNum;
    }

    public void setLateFeeNum(Integer lateFeeNum) {
        this.lateFeeNum = lateFeeNum;
    }

    public String getOwnerNo() {
        return ownerNo;
    }

    public void setOwnerNo(String ownerNo) {
        this.ownerNo = ownerNo;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getCommunityNo() {
        return communityNo;
    }

    public void setCommunityNo(String communityNo) {
        this.communityNo = communityNo;
    }

    public String getHouseNo() {
        return houseNo;
    }

    public void setHouseNo(String houseNo) {
        this.houseNo = houseNo;
    }

    public String getChargeAddress() {
        return chargeAddress;
    }

    public void setChargeAddress(String chargeAddress) {
        this.chargeAddress = chargeAddress;
    }

    public boolean isDeleted() {
        return deleted;
    }

    public void setDeleted(boolean deleted) {
        this.deleted = deleted;
    }

    public String getCreateName() {
        return createName;
    }

    public void setCreateName(String createName) {
        this.createName = createName;
    }

    public String getUpdateName() {
        return updateName;
    }

    public void setUpdateName(String updateName) {
        this.updateName = updateName;
    }

    public String getPenaltyOrderNo() {
        return penaltyOrderNo;
    }

    public void setPenaltyOrderNo(String penaltyOrderNo) {
        this.penaltyOrderNo = penaltyOrderNo;
    }

    public String getHouseBillNo() {
        return houseBillNo;
    }

    public void setHouseBillNo(String houseBillNo) {
        this.houseBillNo = houseBillNo;
    }

    public String getItemBillNo() {
        return itemBillNo;
    }

    public void setItemBillNo(String itemBillNo) {
        this.itemBillNo = itemBillNo;
    }

    public BigDecimal getPenaltyAmount() {
        return penaltyAmount;
    }

    public void setPenaltyAmount(BigDecimal penaltyAmount) {
        this.penaltyAmount = penaltyAmount;
    }

    public PriceUnitEnum getPenaltyScale() {
        return penaltyScale;
    }

    public void setPenaltyScale(PriceUnitEnum penaltyScale) {
        this.penaltyScale = penaltyScale;
    }

    public DateUnitEnum getPenaltyUnit() {
        return penaltyUnit;
    }

    public void setPenaltyUnit(DateUnitEnum penaltyUnit) {
        this.penaltyUnit = penaltyUnit;
    }
}
